Primary Key এবং Foreign Key হল রিলেশনাল ডেটাবেস ডিজাইনের দুটি গুরুত্বপূর্ণ উপাদান, যেগুলি টেবিলগুলির মধ্যে সম্পর্ক এবং ডেটার অখণ্ডতা নিশ্চিত করতে সাহায্য করে। এগুলি ডেটাবেসের সংগঠন এবং তথ্য সঠিকভাবে সংরক্ষণ করার ক্ষেত্রে অপরিহার্য ভূমিকা পালন করে।
Primary Key (প্রাইমারি কী)
Primary Key হলো একটি কলাম (বা কলামগুলোর সমষ্টি) যা টেবিলের প্রতিটি রেকর্ডকে অনন্যভাবে চিহ্নিত করে। অর্থাৎ, এটি একটি টেবিলের প্রতিটি সারির জন্য একটি একক এবং অনন্য মান প্রদান করে। Primary Key এর মাধ্যমে ডেটাবেস নিশ্চিত করে যে একই মান দুটি বার থাকবে না।
Primary Key এর ভূমিকা:
- ডেটা অখণ্ডতা: প্রাইমারি কী একটি টেবিলের রেকর্ডগুলিকে অনন্য করে তোলে, যাতে কোনও রেকর্ডের পুনরাবৃত্তি না হয়। এটি ডুপ্লিকেট রেকর্ড তৈরি হওয়া রোধ করে।
- ইনডেক্সিং এবং পারফরম্যান্স: সাধারণত, প্রাইমারি কী কলামটি অটোমেটিক্যালি ইনডেক্স করা হয়, যা ডেটা অনুসন্ধানের গতি বাড়ায়।
- অবশ্যই মান থাকা: প্রাইমারি কী কলামে NULL মান থাকতে পারে না। প্রতিটি রেকর্ডে এই কলামের মান অবশ্যই উপস্থিত থাকতে হবে, এবং এটি অনন্য হবে।
- টেবিলের জন্য বিশেষ সনাক্তকরণ: একটি টেবিলের প্রতিটি রেকর্ডকে একে অপরের থেকে আলাদা করতে প্রাইমারি কী ব্যবহৃত হয়।
প্রাইমারি কী উদাহরণ:
ধরা যাক, একটি Students নামক টেবিল আছে যেখানে প্রতিটি শিক্ষার্থীর একটি অনন্য আইডি রয়েছে:
CREATE TABLE Students (
StudentID INT PRIMARY KEY, -- Primary Key
FirstName VARCHAR(50),
LastName VARCHAR(50)
);
এখানে StudentID হলো Primary Key, যা প্রতিটি শিক্ষার্থীর রেকর্ডকে অনন্যভাবে চিহ্নিত করে।
Foreign Key (ফরেন কী)
Foreign Key হলো একটি কলাম (বা কলামগুলোর সমষ্টি) যা অন্য একটি টেবিলের প্রাইমারি কী কলামের সাথে সম্পর্কিত থাকে। অর্থাৎ, ফরেন কী ব্যবহার করে একটি টেবিলের রেকর্ড অন্য একটি টেবিলের রেকর্ডের সাথে সম্পর্কিত হয়। এটি দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করতে ব্যবহৃত হয়।
Foreign Key এর ভূমিকা:
- ডেটাবেসে সম্পর্ক স্থাপন: ফরেন কী ব্যবহার করে দুটি টেবিলের মধ্যে সম্পর্ক তৈরি করা হয়। এটি রিলেশনাল ডেটাবেসের অন্যতম মূল ধারণা, যেখানে ডেটা টেবিলের মধ্যে যুক্ত থাকে।
- ডেটা অখণ্ডতা বজায় রাখা: ফরেন কী সম্পর্কিত টেবিলের মধ্যে ডেটা একযোগভাবে পরিবর্তিত হয়, যা ডেটার অখণ্ডতা নিশ্চিত করে। অর্থাৎ, ফরেন কী ব্যবহার করে আপনি নিশ্চিত করতে পারেন যে, সম্পর্কিত রেকর্ডগুলি ঠিক আছে (যেমন: যদি একটি টেবিলের রেকর্ড মুছে ফেলা হয়, তবে অন্য টেবিলের সম্পর্কিত রেকর্ডটি মুছে ফেলা বা পরিবর্তন করা হবে)।
- নাল মানের অনুমতি: ফরেন কী কলামে NULL মান থাকতে পারে, কিন্তু তা তখনই হবে যখন সম্পর্কিত টেবিলের রেকর্ড উপস্থিত না থাকে।
- ডেটাবেস নরমালাইজেশন: ফরেন কী রিলেশনাল ডেটাবেসে নরমালাইজেশন প্রক্রিয়ার অংশ হিসেবে ব্যবহৃত হয়, যেখানে ডেটা ডুপ্লিকেশন কমানো এবং ডেটার কার্যকর ব্যবস্থাপনা করা হয়।
ফরেন কী উদাহরণ:
ধরা যাক, আপনার একটি Courses টেবিল এবং একটি Enrollments টেবিল আছে, যেখানে শিক্ষার্থীরা কোর্সে ভর্তি হয়। Enrollments টেবিলের StudentID ফরেন কী হিসেবে Students টেবিলের StudentID কলামের সাথে যুক্ত থাকবে:
CREATE TABLE Students (
StudentID INT PRIMARY KEY, -- Primary Key
FirstName VARCHAR(50),
LastName VARCHAR(50)
);
CREATE TABLE Enrollments (
EnrollmentID INT PRIMARY KEY,
StudentID INT,
CourseName VARCHAR(50),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID) -- Foreign Key
);
এখানে Enrollments টেবিলের StudentID কলামটি Students টেবিলের StudentID কলামের সাথে সম্পর্কিত, যা ফরেন কী হিসেবে কাজ করছে।
সারসংক্ষেপ:
- Primary Key: একটি টেবিলের প্রতিটি রেকর্ডকে অনন্যভাবে চিহ্নিত করে এবং এটি টেবিলের জন্য অপরিহার্য।
- Foreign Key: দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করে এবং ডেটার অখণ্ডতা বজায় রাখে।
Primary Key এবং Foreign Key এর সঠিক ব্যবহার ডেটাবেস ডিজাইনকে আরও কার্যকর এবং তথ্য সঠিকভাবে সংরক্ষিত রাখতে সহায়তা করে।
Read more